Conventional communication networks are increasingly being used for distributed communication applications and services that are facilitated by the formation of communication support systems. Such communication support systems are formed by organizing a set of geographically distributed computers and interconnecting networks. In some cases, these computers and networks are dedicated to the specific application, but often the computers and networks are used for many purposes and are only temporarily part of the communication support system for a specific application while the application is active.
Once a communication support system is created for a specific application, the elements that comprise the application can use the system to exchange data with other distributed application elements. This data can include files, command and control instructions, status information or any other items required for operation of the application. Further, this data is typically exchanged by packaging it into units called messages, where a message contains data and some additional information about the data in the message, such as the source, destination, or other characteristics of the data.
One example of such an application is a multimedia collaboration system in which computers and networks exchange messages to allow remote participants to interact in a manner similar to face-to-face meetings as described in U.S. patent application Ser. Nos. 10/676,899, 10/826,863 and 10/826,865.
Some of the data exchanged in a collaborative application can comprise sensitive information making it desirable to protect it from interception by unauthorized observers. It is also often desirable to prevent spurious data from being introduced into the communication support system, such as from a nefarious person trying to interfere with or disable the application, or some component thereof. Some conventional systems address these needs by applying encryption or encoding schemes; however, encryption or encoding requires additional processing overhead in both the sending and receiving computers and may increase the size of the messages sent. Thus, encryption adds overhead and reduces performance in proportion to the quantity of data encrypted. When not all data is sensitive, encrypting all messages reduces performance without corresponding improvement in security.
When messages are transferred between computers in a communication support system, a message may travel through several intermediate nodes and multiple network links as it travels between source and destination. The links used between two specific computers may vary depending on the message destination, link availability, or other criteria. Network links vary considerably in many aspects, including the degree of resistance to unauthorized observation, interception, or introduction of data. Typically, the exact set of links to be used is not known prior to sending the message. Thus, it is not usually possible to evaluate the security of the path a message will take prior to sending a message. Conventional systems often permit security provisions to be made only for a complete end-to-end path. This produces a significant limitation since security settings must be configured according to the least secure link in the message path and most secure data message to be transferred. This limitation becomes worse when the message travels through a large number of network links, as is common in distributed applications. Thus, conventional systems often overprotect data to accommodate the weakest link.
Moreover, the degree of trust of a particular link is a judgment made by a person, and persons making such judgments may vary in reliability, criteria used, or intent. For example, an assessment that a network internal to a company is secure, made by a company-employed expert, is more likely to be trusted by company executives than an external network link judged to be secure by an unknown person. Yet the same network may be judged to be completely untrustworthy if assessed by an employee of a competitor.
Accordingly, the trustworthiness of a link is not absolute and is dependent on perspective, i.e., in conventional systems it is a subjective determination. A link may be judged to be completely trusted by one observer, and completely untrusted by another, and both observers may be correct from their respective points of view. Many conventional systems, however, do not allow different observers to specify differing levels of trust.
As a result, the degree of trust appropriate for a given network link is complex and may depend on the type of data, the source, and the person making the assessment of trustworthiness. The complexity increases when a message traverses many links while en route between computers. Conventional systems are limited in that they only offer, for example, an option that all communications are encrypted or all not encrypted. Differing degrees of trust or treatment of individual links between nodes is not possible.
A further limitation of conventional systems, such as Secure Socket Layer (SSL) systems, is that the a decision to encrypt must be made when the connection between elements is established, rather than as messages are forwarded using the connection. Yet complex applications often use a single connection to send many types of data and messages that often have differing protection requirements. These requirements may change dynamically over time or after the connection is established. Conventional systems do not permit messages to be selectively protected. Conventional systems also do not permit dynamic changes in protection policy. Thus, the originator of data often is not able to exercise fine-grained control over message protection in conventional systems.
Thus, conventional systems are limited in that either all data is encrypted or none, and the link between computers is either treated as trusted and secure or not. No breakdown of data into messages and links is possible when deciding if encryption is needed or not.
Another limitation of conventional systems is that they are not configurable to the specific needs of an application, but only allow a decision if all data to be exchanged on a connection will be encrypted or not. Yet complex applications often require more sophisticated security systems that are hierarchical, varied in scope, and allow dynamic consideration of the sensitivity of messages and the trustworthiness of network links.